package com.ruoyi.employee.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.employee.mapper.HrEmployeeMapper;
import com.ruoyi.employee.domain.HrEmployee;
import com.ruoyi.employee.service.IHrEmployeeService;

/**
 * 员工信息Service业务层处理
 *
 * @author h…
 * @date 2025-10-13
 */
@Service
public class HrEmployeeServiceImpl implements IHrEmployeeService
{
    @Autowired
    private HrEmployeeMapper hrEmployeeMapper;

    /**
     * 查询员工信息
     *
     * @param id 员工信息主键
     * @return 员工信息
     */
    @Override
    public HrEmployee selectHrEmployeeById(Long id)
    {
        return hrEmployeeMapper.selectHrEmployeeById(id);
    }

    /**
     * 查询员工信息列表
     *
     * @param hrEmployee 员工信息
     * @return 员工信息
     */
    @Override
    public List<HrEmployee> selectHrEmployeeList(HrEmployee hrEmployee)
    {
        return hrEmployeeMapper.selectHrEmployeeList(hrEmployee);
    }

    /**
     * 新增员工信息
     *
     * @param hrEmployee 员工信息
     * @return 结果
     */
    @Override
    public int insertHrEmployee(HrEmployee hrEmployee)
    {
        hrEmployee.setCreateTime(DateUtils.getNowDate());
        // 关键修复：确保能被 he.del_flag='0' 的列表查询命中
        if (hrEmployee.getDelFlag() == null || hrEmployee.getDelFlag().trim().isEmpty()) {
            hrEmployee.setDelFlag("0");
        }
        // 可选：默认在职状态
        if (hrEmployee.getEmpStatus() == null) {
            hrEmployee.setEmpStatus("0");
        }
        return hrEmployeeMapper.insertHrEmployee(hrEmployee);
    }

    /**
     * 修改员工信息
     *
     * @param hrEmployee 员工信息
     * @return 结果
     */
    @Override
    public int updateHrEmployee(HrEmployee hrEmployee)
    {
        hrEmployee.setUpdateTime(DateUtils.getNowDate());
        return hrEmployeeMapper.updateHrEmployee(hrEmployee);
    }

    /**
     * 批量删除员工信息
     *
     * @param ids 需要删除的员工信息主键
     * @return 结果
     */
    @Override
    public int deleteHrEmployeeByIds(Long[] ids)
    {
        return hrEmployeeMapper.deleteHrEmployeeByIds(ids);
    }

    /**
     * 删除员工信息信息
     *
     * @param id 员工信息主键
     * @return 结果
     */
    @Override
    public int deleteHrEmployeeById(Long id)
    {
        return hrEmployeeMapper.deleteHrEmployeeById(id);
    }
}
